unit Opciones;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  ComCtrls, ButtonPanel, ExtCtrls, ColorBox, StdCtrls, CheckLst, SynEdit;

type

  { TOpcionesForm }

  TOpcionesForm = class(TForm)
    ButtonPanel1: TButtonPanel;
    lschkPuertosSerie: TCheckListBox;
    chkNegrita: TCheckBox;
    chkSubrayado: TCheckBox;
    chkCursiva: TCheckBox;
    chkColorTexto: TCheckBox;
    chkFondo: TCheckBox;
    chkMarcoTexto: TCheckBox;
    clColorTextoPredeterminado: TColorBox;
    clColorFondoPredeterminado: TColorBox;
    ColorBox1: TColorBox;
    ColorBox2: TColorBox;
    ColorBox3: TColorBox;
    ContenedorColores: TNotebook;
    Label1: TLabel;
    Label2: TLabel;
    Panel2: TPanel;
    pgObjectos: TPage;
    pgConstantes: TPage;
    pgPalabrasReservadas: TPage;
    pgTextoPredeterminado: TPage;
    Panel1: TPanel;
    pgColores: TPage;
    pgPuertoSerie: TPage;
    Paginas: TNotebook;
    Splitter1: TSplitter;
    Splitter2: TSplitter;
    SynEdit1: TSynEdit;
    TreeView1: TTreeView;
    treeViewColores: TTreeView;
    procedure FormCreate(Sender: TObject);
    procedure TreeView1Click(Sender: TObject);
    procedure treeViewColoresClick(Sender: TObject);
  private
    { private declarations }
    {
     MuestraPaginaPorNombre
    Parámetros:
               Contenedor: Tipo TNotebook
               aNombre: Tipo Cadena
    Retorna:
              Nada.

    Este procedimiento recibe in TNotebook como parámetro y un nombre de la
    página que debe mostrar. De manera que busca el nombre de la página pasado
    como parámetro, dentro del notebook pasaddo como parámetro
    }
    Procedure MuestraPaginaPorNombre (Contenedor : TNotebook; aNombre : String);
  public
    { public declarations }
  end; 

var
  OpcionesForm: TOpcionesForm;

implementation

{ TOpcionesForm }
Uses ucomun;
procedure TOpcionesForm.TreeView1Click(Sender: TObject);
var
  Nodo: TTreeNode;
begin
  If TreeView1.Selected = nil Then
   Exit;

  Nodo := TreeView1.Selected;
  If Nodo.Text = 'Colores' Then
  Begin
     MuestraPaginaPorNombre(Paginas,'pgColores');
     Exit;
  end;
  if Nodo.Text = 'Comunicación' Then
  Begin
     MuestraPaginaPorNombre(Paginas,'pgPuertoSerie');
     Exit;
  end;
  if Nodo.Text = 'Puerto Serie' Then
  Begin
     MuestraPaginaPorNombre(Paginas,'pgPuertoSerie');
     Exit;
  end;
end;

procedure TOpcionesForm.FormCreate(Sender: TObject);
var
  I: Integer;
  J: Integer;
  X : Integer;
begin


  For I := 0 To Paginas.PageCount-1 do
  Begin
     With Paginas.Page[I] do
     Begin
        IF Name = 'pgPuertoSerie' Then
        Begin
           x := ComponentCount;
           For J := 0 To ComponentCount-1 do
           Begin
              IF Components[J] is TCheckListBox Then
              Begin
                 With Components[J] as TCheckListBox do
                   Items.Assign(PuertosSerie);
              end;
           end;
        end;
     end;
  end;
end;

procedure TOpcionesForm.treeViewColoresClick(Sender: TObject);
var
  Nodo: TTreeNode;
begin
  IF treeViewColores.Selected = nil Then
    Exit;
  Nodo := treeViewColores.Selected;
  If Nodo.Text = 'Palabras Reservadas' Then
  Begin
     MuestraPaginaPorNombre(ContenedorColores,'pgPalabrasReservadas');
     Exit;
  end;
  ShowMessage (Nodo.Text);
  If Nodo.Text = 'Texto Predeterminado' Then
  Begin
     MuestraPaginaPorNombre(ContenedorColores,'pgTextoPredeterminado');
     Exit;
  end;

end;

procedure TOpcionesForm.MuestraPaginaPorNombre(Contenedor: TNotebook;
  aNombre: String);
var
  I: Integer;
begin
  I := 0;
  While I < Contenedor.PageCount do
  Begin
    If Contenedor.Page[I].Name = aNombre Then
    Begin
      Contenedor.PageIndex:= I;
      I := Contenedor.PageCount;
    end;
    Inc(I);
  end;
end;

initialization
  {$I opciones.lrs}

end.

